#ifndef DSPSIMULATOR_ADDRESSMODE_H
#define DSPSIMULATOR_ADDRESSMODE_H

#include <simulator/type/type.h>

// 寻址模式的字符串格式的数量
static const u32 numOfAddGenMode = 16;
// 寻址模式的字符串格式
static const char *addGenMode[] = {
        "*-R[ucst]",        // Negative offset
        "*+R[ucst]",        // Positive offset
        "",
        "",
        "*-R[offsetR]",     // Negative offset
        "*+R[offsetR]",     // Positive offset
        "",
        "",
        "*--R[ucst5]",      // Predecrement
        "*++R[ucst5]",      // Preincrement
        "*R--[ucst5]",     // Postdecrement
        "*R++[ucst5]",     // Postincrement
        "*--R[offsetR]",   // Predecrement
        "*++R[offsetR]",   // Preincrement
        "*R--[offsetR]",   // Postdecrement
        "*R++[offsetR]"    // Postincrement
};

// 寻址模式类型
enum class AddressingMode {
    Linear = 0,     // 线性寻址
    CircularBK0,    // 循环BK0寻址
    CircularBK1,    // 循环BK1寻址
    Reserved        // 保留类型
};


#endif //DSPSIMULATOR_ADDRESSMODE_H
